

extern int TblMult3[9];  // 3*i
extern int TblMult9[9];  // 9*i
extern byte Tblmod3[9];  // i%3
extern int TblOtherMask9[9] ;
//extern byte Tbloffset[81]; //i%9

extern int Tbldiv3[27]; //i/3
extern int TblMod9[81]; //i%9 cell to column
extern int  Tblstartblock[27];
extern int Tblofftorow[27]; 
extern int Tblofftobox[27] ;
// other bands for a F[i]
extern byte TblAnother1[27];
extern byte TblAnother2[27];
extern int TblBoard_BlockMask27[27]; //1<<i 
extern int TblRowMask[8];// rows where single  found  000 to 111
extern word TblShrinkUnsolved[8]; // only unsolved rows
extern int TblMask26row[9];


extern byte Tbloffset[81]; // giving cell to offset in a band
extern byte TblBoard_Block[81]; // giving cell -> band 
extern byte TblCelltoBox[81];
//extern byte TblaffectedCells[81][20];
extern byte TblOtherSameBand[27][8]; // cleaning cells other digits
extern byte BitCount[512] ;
extern byte TblBitToInd[512] ;
extern byte TblBitIndex[257] ; // directly index 0_8
extern byte Tblfirst0_8[512] ;
extern byte TblShrinkMask[512] ;// existing minirows 000 to 111


extern int TblComplexMask[512]; // keep mini rows still valid optimised process
extern int TblKillMask[512]; // killed candidates pointing general
extern word TblComplexShort[512];  // same as complex  minirows still valid
extern word TblComplexShortBox[512];
//int TblUniqFlag[8] = {1,1,1,0,1,0,0,0};
extern word TblNewBoxRow[512]; // new minirow alone in box after shrink
extern byte TblRowUniq[512] ; // 1 is row not defined in block  mode  to 111
extern word TblColumnSingleinBox[512];
extern word TblColumnSingle[512]; // single in column applied to shrinked bloc
extern word TblShrinkSingle[512] ; // keep only rows with single
extern int TblMaskSingle[512]; // kill in other blocks locked column /box
extern int TblMaskDouble[512];// kill for locked in box / column

extern byte tv_string[1024];
extern word tv_strindex[256];

extern char *  empty_puzzle;
extern t_128   cellsInBandBM[6];
extern t_128 cellsInHouseBM[27];
extern byte cellsInGroup[27][9];
extern  CELL_FIX  cellsFixedData[81];
extern byte miniline[54][3]; 
extern  BF81 minilineBM[54] ;
extern USHORT perms_band[6][3];

extern BF_FIX bf_fix;
extern PMBF pairinbox;
extern USHORT mask_mini_row[3],
	   mask_mini_col[3],mask_empty_holes[9];
;
extern COMB9 tcomb9[255][2];
extern int indtcomb9[5];
extern USHORT indtcomb9rev[512]; // reverse index C N,x to list

enum Bits_Tasks_Done{bit_skl_done=0,bit_jexocet_done,bit_exocet_done,
		bit_multi_done,bit_abiloop_done,bit_sym_given_done};
